﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Entidad;
using System.Data.SqlClient;

namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsT_CLIENTE_VENDEDORDAO
    {
        private readonly DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();

        public IEnumerable<T_CLIENTE_VENDEDOR_Listar> ListarClienteVendedor(int ID_CLIENTE)
        {
            var p = new object[] { new SqlParameter("@ID_CLIENTE", ID_CLIENTE) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_CLIENTE_VENDEDOR_Listar>("exec USP_T_CLIENTE_VENDEDOR_Listar @ID_CLIENTE", p).AsQueryable().ToList();
            return resultado;
        }

        public List<TD_Vendedor_Nombre> ListarClienteVendedor_Cliente_Org(int ID_CLIENTE, int ID_ORG_VTA)
        {
            var p = new object[] { new SqlParameter("@ID_CLIENTE", ID_CLIENTE), new SqlParameter("@ID_ORG_VTA", ID_ORG_VTA) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<TD_Vendedor_Nombre>("exec USP_T_CLIENTE_VENDEDOR_Listar_Cliente_OrgVta @ID_CLIENTE,@ID_ORG_VTA", p).AsQueryable().ToList();
            return resultado;
        }

        public IEnumerable<T_CLIENTE_VENDEDOR_Listar> ListarClienteVendedor_x_Vendedor(int ID_ORG_VTA, int ID_CANAL_DISTRIB, int ID_VENDEDOR)
        {
            var p = new object[] { new SqlParameter("@ID_ORG_VTA", ID_ORG_VTA), new SqlParameter("@ID_CANAL_DISTRIB", ID_CANAL_DISTRIB), new SqlParameter("@ID_VENDEDOR", ID_VENDEDOR) };

            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_CLIENTE_VENDEDOR_Listar>("exec USP_T_CLIENTE_VENDEDOR_Listar_x_Vendedor @ID_ORG_VTA,@ID_CANAL_DISTRIB,@ID_VENDEDOR", p).AsQueryable().ToList();
            return resultado;
        }

        public bool Insertar(T_CLIENTE_VENDEDOR Obj)
        {
            try
            {
                ContextoDeObjs.AddObject("T_CLIENTE_VENDEDOR", Obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }

        public bool Actualizar(int ID_ORG_VTA, int ID_CANAL_DISTRIB, int ID_CLIENTE, int ID_VENDEDOR)
        {
            try
            {
                ContextoDeObjs.ExecuteStoreCommand("UPDATE T_CLIENTE_VENDEDOR SET ID_VENDEDOR =" + ID_VENDEDOR.ToString() + " WHERE ID_ORG_VTA=" + ID_ORG_VTA.ToString() + " AND ID_CANAL_DISTRIB=" + ID_CANAL_DISTRIB.ToString() + " AND ID_CLIENTE=" + ID_CLIENTE.ToString());
                return true;
            }
            catch
            {
                return false;
            }
        }

        public bool Eliminar(T_CLIENTE_VENDEDOR Obj)
        {
            try
            {
                ContextoDeObjs.AttachTo("T_CLIENTE_VENDEDOR", Obj);
                ContextoDeObjs.DeleteObject(Obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }


        public IEnumerable<Object> DatosClienteVendedor(int ID_ORG_VTA, int ID_CANAL_DISTRIB, int ID_CLIENTE)
        {

            IEnumerable<Object> Lista = new List<Object>();
            var q = from c in ContextoDeObjs.T_CLIENTE_VENDEDOR
                    where c.ID_ORG_VTA == ID_ORG_VTA && c.ID_CANAL_DISTRIB == ID_CANAL_DISTRIB
                    && c.ID_CLIENTE == ID_CLIENTE
                    select c;

            Lista = q.ToList();

            return Lista;


        }



    }
}
